﻿using System;
using System.Collections.Generic;

namespace HengTong.Model.Request;

// 身份证识别请求模型
public class IdentityCardRecognitionRequest
{
    /// <summary>
    /// 身份证图片的ID（从FileAttachment表获取）
    /// </summary>
    public Guid ImageId { get; set; }

    /// <summary>
    /// 身份证类型：front(正面) 或 back(反面)
    /// </summary>
    public string CardType { get; set; } = "front";
}

// 身份证识别响应模型
public class IdentityCardInfo
{
    /// <summary>
    /// 姓名
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 性别
    /// </summary>
    public string Gender { get; set; }

    /// <summary>
    /// 民族
    /// </summary>
    public string Nationality { get; set; }

    /// <summary>
    /// 出生日期
    /// </summary>
    public string BirthDate { get; set; }

    /// <summary>
    /// 住址
    /// </summary>
    public string Address { get; set; }

    /// <summary>
    /// 身份证号码
    /// </summary>
    public string IdNumber { get; set; }

    /// <summary>
    /// 签发机关（背面）
    /// </summary>
    public string IssuingAuthority { get; set; }

    /// <summary>
    /// 有效期限（背面）
    /// </summary>
    public string ValidPeriod { get; set; }

    /// <summary>
    /// 身份证有效期（背面）
    /// </summary>
    public DateTime? IdCardExpiryDate { get; set; }
}

// 阿里云OCR响应模型
public class AliyunOcrResponse
{
    public string address { get; set; }
    public string name { get; set; }
    public string nationality { get; set; }
    public string num { get; set; }
    public string sex { get; set; }  // 注意：API返回的是sex，不是gender
    public string birth { get; set; }
    public string issue { get; set; }
    public string start_date { get; set; }
    public string end_date { get; set; }
    public bool success { get; set; }
    public bool is_fake { get; set; }
    public string request_id { get; set; }
    public string config_str { get; set; }
}

public class AliyunOcrData
{
    public string name { get; set; }        // 姓名
    public string gender { get; set; }      // 性别
    public string nationality { get; set; } // 民族
    public string birth { get; set; }       // 出生日期
    public string address { get; set; }     // 地址
    public string num { get; set; }         // 身份证号
    public string issue { get; set; }       // 签发机关
    public string valid { get; set; }       // 有效期
}